package org.hu.mapper;

import org.apache.ibatis.annotations.Param;
import org.hu.model.Meeting;
import org.hu.model.MeetingDTO;

import java.util.List;

public interface MeetingMapper {

    void addParticipants(@Param("meetingid") Integer meetingid, @Param("mps") Integer[] mps);

    Integer addMeeting(Meeting meeting);

    /**
     * 查询会议并分页
     * @param meetingDTO 会议
     * @param page 页数
     * @param pagesize 每页数量
     * @return List<MeetingDTO>
     */
    List<MeetingDTO> listMeetingDTOs(@Param("mdto") MeetingDTO meetingDTO, @Param("page") Integer page,
                                     @Param("pagesize") Integer pagesize);

    /**
     * 获得所有会议的数量
     * @param meeting 会议
     * @return Long
     */
    Long getTotal(@Param("mdto") MeetingDTO meeting);

    /**
     * 通过会议id查询会议
     * @param meetingid
     * @return Meeting
     */
    Meeting getMtById(Integer meetingid);

    /**
     * 我预定的会议
     * @param employeeid 员工id
     * @return List<MeetingDTO>
     */
    List<MeetingDTO> getMyBookMt(Integer employeeid);

    /**
     * 通过会议id取消会议
     * @param meetingid 会议id
     * @param reason 取消原因
     * @return Integer
     */
    Integer cancelMeeting(@Param("meetingid") Integer meetingid, @Param("canceledreason") String reason);

    /**
     * 根据会议状态查询会议
     * @param status 状态码 0为正常 1为取消
     * @return
     */
    List<MeetingDTO> getMtByStatus(int status);

    /**
     * 通过员工id查询此员工参加的会议
     * @param employeeid 员工id
     * @return  List<MeetingDTO>
     */
    List<MeetingDTO> getMtByEmpId(Integer employeeid);
}
